This page last changed on Jan 26, 2012 by rich.


As Recieved From SMD

SMD control software with requires a depth input in meters for pilot GUI, nav display etc.

ROV has a Paroscientifics Digiquartz (Model: 8B4000-I s/n 107921) xducer.

ROV Digiquartz configured by SMD to provide depth in meters (nominal/uncorrected)

SMD software allows for pilot input of an offset to account for surface diff (atmospheric plus slight calibration trim) (That offset is sent down to the sensor on startup).

SMD software has no provision to tell us what the offset is for post-processing.

SMD contract specified "pressure" be provided in the 'DVECS' serial string to navproc, however as built was digiquartz depth in meters plus SMD applied pilot-provided depth offset.

SMD contact specified MBARI was to supply our computed rov depth to SMD software via the $NVP message string for video overlay etc.

Our requirements are for:

  • precise pressure>depth conversion (using ships latitude)
  • any offsets are known and stable
  • nominal 'depth=zero' at surface (psig)
  • single source - ie everyone looks at, logs and displays the same value

What we did...

We intercept the data coming from the Digiquartz and run it over to navproc, where a task parses it, converts to pressure, computes depth using ships latitude, applies offsets and then outputs back out a serial port for injection to the SMD system (Refer to FIgure). This also required reprogramming the Digiquartz to continuously output rs232 on powerup, output (nominal meters of seawater), and no zero-offset tare.

Additionally, we also provide a depth output from the Seabird CTD in Digiquartz format in case the sensor ever dies in the field....

The post-rov-delivery changes to the system to meet MBARI requirements means both the MBARI and SMD software "design" is not clean. There is some data  duplication and some seemingly circular data pathways - hopefully they are correctly captured below... although about two years afte-the-fact.

Programming the Digiquartz

First step was to re-program the Digiquartz to output Depth in meters od seawater (nominal,uncorrected).

Refer to manual and notes below..... (see Confluence Attachments to this page). 


Direct connect serially

My notes are sketchy here... refer to digiquartz manual....(Model: 8B4000-I s/n 107921)

Note cmd format is *ddsscc  dd=destination(the sensor) ss=source(you,the terminal or PC) cc=cmd. So commands from terminal>digi begin *0100 and data from digi>terminal should begin *0001...

I think below was investigating how it was shipped by SMD:

THIS IS APPROXIMATE... NEEDS VERIFICATION.

*0100 MD <cr><lf> MD=2

*0100 PR <cr><lf>  PR=238
*0100 MD=0
          UN=8 (metersH2O (freshwater))
          UF=1.00000
          ZS = 0
          ZV = 0
          ZL = 0

I think below is how I commanded it - possibly each cmd was preceded by the *0100EW (enable eeprom write cmd) See manual attached...

THIS NEEDS VERIFICATION.

Note *0100EW  =  (Enable EEPROM write for one command.)

*0100EW*0100ZL = 1 <cr><lf> (zero tare locked)
*0100EW*0100UN = 0 <cr><lf> (user defined units based on UF multiplier)
*0100EW*0100UF = 0.683853 <cr><lf> (psi to meters of seawater manual pg 6-9)
*0100EW*0100MD = 2 <cr><lf>  (display off, continuous rs232 on)

(also assumes PR=238 ZS=0 ZV=0 ZL=0 from prior setup)

The Navproc Code on Itchy

Navproc runs a serialIn task to ingest the Digiquartz message string and publishes it to datamanager as DIGIQ.MSG.STRING (see below, extract from /usr/tiburon2/bin/navproc/coreNav.wf on itchy.)

 serialPort  0,15  9600   8    1    None   CR/LF  # ROV Digiquartz Pressure In
...
serialIn  ROV.DIGIQ.STRING        CHAR[64]  "%s\n"       No   0,15  None

Navproc runs depthCalcTask() (see: /usr/tiburon2/src/navproc/calculateDepth.c)

  • consumes ROV.DIGIQ.STRING
  • backs out the nominal psi-to-meters correction made in the xducer. ( psi = digiqDepth / 0.683853)
  • converts psi to decibars. (psi * 0.6894757 )
  • removes observed surface pressure offset (10.1325) and publishes as ROV.DIGIQ.SCALED_PRESSURE
  • computes depth in meters using standard algorithms and ship's latitude and publishes as ROV.MBARI.DEPTH
  • computes depth change rate and publishes as ROV.MBARI.DEPTH_RATE
  • formats and outputs ROV.MBARI.DEPTH in Digiquartz format on serial port (back to the SMD system)

What Gets Used

1) Core data logging by shipnavlogr on scratchy logs the following Pressure and Depth items derived from the Digiquartz

ROV.DIGIQ.SCALED_PRESSURE
ROV.MBARI.DEPTH

 2) SMD consumes the digiq formatted value of  ROV.MBARI.DEPTH as if it had come from the sensor

 3) SMD therefore re-outputs the depth via the original DVECS output message string, which ends up back in navproc as ROV.DVECS.DEPTH

 4) Navproc dvcsIntfcTask outputs ROV.MBARI.DEPTH within the NVP string as originally agreed.  

 5) Navproc overlay.c task consumes ROV.MBARI.DEPTH_RATE , ROV.MBARI.DEPTH, ROV.DVECS.DEPTH (and lots of other items) and outputs on a serial line to the vehicle overlay computer.

 6) ROV.MBARI.DEPTH is consumed by the navproc vorneTask and sent serially to the Vorne Display in the control room. 


As Built (text/xml)
As Built (text/xml)
As Built (text/xml)
As Built (text/xml)
As Built (text/xml)
DigiquartzPressureSensorManual.pdf (application/pdf)
DigiquartzPressureSensorSpecs.pdf (application/pdf)
Document generated by Confluence on Feb 04, 2026 08:50